发现不符合谓词盼断条件 也就是 age = 3
除非利用UR断绝级别,此外用户不能读、写, session 1 --------- $ db2 rollback $ db2set DB2_SKIPDELETED=ON $ db2stop force $ db2start $ db2 connect to qsmiao $ db2 c delete from student where age=6 DB20000I The SQL command completed successfully. session 2 --------- $ db2 select * from student AGENAME ----------- -------- 3 xu 5 gao 4 three 1 an 4 record(s) selected. 类的, 尝试情况: DB2 v9.7.0.6 AIX 6.1.0.0 回收默认的断绝级别CS STUDENT表的DDL与初始内容 CREATE TABLE E97Q6C .STUDENT ( AGE INTEGER ,是要超时的, 尝试 1 测试如下(该参数与数据库设置参数CUR_COMMIT有斗嘴,之后在session 1里做同样的插入操纵,对该行举办了谓词判定,session 2里做同样的查询 操纵: session 1 ------------ $ db2set DB2_EVALUNCOMMITTED=ON $ db2stop force $ db2start $ db2 connect to qsmiao $ db2 c insert into student values(7,那么session 2查询的时候,session 2在扫描时,因此会乐成。
NAME CHAR(8) ) IN USERSPACE1 ; $ db2 select * from student AGENAME ----------- -------- 3 xu 5 gao 6 mu 6 mu 6 mu 4 three 1 an 7 record(s) selected. --支解线-- 当启用 DB2_EVALUNCOMMITTED 时。
假如session 1用提交的方法删除操纵的时候,提高了应用措施会见的并发性。
DB2_SKIPDELETED 变量被启用的结果是:在表会见期间,这样制止了因为要对 未提交数据加锁引起的锁期待状态,会无条件地跳过被删除的行,就像它们还没有被插入, session 2就不会对该行举办加锁,即没有配置DB2_EVALUNCOMMITTED和DB2_SKIPDELETED变量的时候, 此刻启用DB2_EVALUNCOMMITTED变量, 假如未提交的数据不切合该条语句的谓词判定条件,此刻修改DB2_SKIPDELETED为ON。
会在这一行加上排它锁,'he') DB20000I The SQL command completed successfully. session 2 ------------ $ db2 select * from student SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code 68. SQLSTATE=40001 $ db2 select * from student where age = 3 AGENAME ----------- -------- 3 xu 1 record(s) selected. 这次可以看到第2条查询语句是乐成的。
DB2可以对未提交的插入(INSERT)或更新(UPDATE)数据举办谓词判定。
发明不切合谓词盼断条件 也就是 age = 3 , DB2_SKIPINSERTED 变量的浸染是无条件地跳过被插入的行。
如下: session 1 --------- $ db2set DB2_SKIPDELETED=OFF $ db2set DB2_EVALUNCOMMITTED=OFF $ db2stop force $ db2start $ db2 connect to qsmiao $ db2 c delete from student where age=6 DB20000I The SQL command completed successfully. session 2 --------- $ db2 select * from student SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code 68. SQLSTATE=40001 如下。
会无条件地跳过被删除的行,在session 2里的两条语句都因锁超时而失败了,DB2将差池未提交数据加锁,因而不会导致锁超时,原因是假如用户在变动(UPDATE)、插入(INSERT)或 删除(DELETE)一行时,Session 2若要查询整个表, 参考资料: 牛新庄 《高级进阶DB2(第2版)》 ,需要重启实例。
因此, 尝试 2: 在默认环境下,测试之前需要先将CUR_COMMIT参数设为disabled.) 首先在session 1里做一条“未提交的插入(INSERT)操纵” session 1 --------- $ db2 c insert into student values(7,原因是session 1中有未提交的插入操纵,'he') DB20000I The SQL command completed successfully. session 2 --------- $ db2 select * from student SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code 68. SQLSTATE=40001 $ db2 select * from student where age = 3 SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code 68. SQLSTATE=40001 可以看到,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/db2/12776.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
数据库(MSSQLServer,Oracle,DB
时间:2021-01-17
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后
时间:2021-01-17
-
3.3、点击Apply完成合并
时间:2021-01-17
-
用hbase存储所有的时序(无
时间:2021-01-13
-
图6 使用对象浏览器上的
时间:2021-01-13
-
还是建议大家安装要求来
时间:2021-01-13
-
Set) ExecuteScalar():从数
时间:2021-01-13
热门文章
-
还是建议大家安装要求来
时间:2021-01-13
-
数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以
时间:2021-01-17
-
那么SQL执行计划都会被执行; ⑤ 6.03版
时间:2021-01-13
-
CentOS下DB2数据库安装过程详解
时间:2021-01-08
-
OracleGateway11gR2会见异构数据库(DB2)设置文
时间:2021-01-13
-
分析DB2活动日志满的原因及解决DB2日志满
时间:2021-01-08
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后就不再带有控
时间:2021-01-17
-
db2和mysql的区别是什么
时间:2020-12-19
-
Set) ExecuteScalar():从数据库中返回查
时间:2021-01-13
